package cn.iocoder.yudao.framework.business.basic.pojo.po;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fhs.core.trans.vo.TransPojo;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  数据库表实体必须实现本接口
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/01/14
 * @see com.baomidou.mybatisplus.annotation.TableName
 * @see com.baomidou.mybatisplus.core.metadata.TableInfoHelper#initTableName
 */
@SuppressWarnings("JavadocReference")
public interface TableEntity extends Serializable, TransPojo {
    long serialVersionUID = 1L;

    @JsonIgnore
    @JSONField(serialize = false)
    @Override
    default Object getPkey() {
        return TransPojo.super.getPkey();
    }

    @JsonIgnore
    @JSONField(serialize = false)
    @Override
    default Map<String, Object> getTransMap() {
        return TransPojo.super.getTransMap();
    }

    String getCreator();

    void setCreator(String creator);

    LocalDateTime getCreateTime();

    void setCreateTime(LocalDateTime createTime);

    String getUpdater();

    void setUpdater(String updater);

    LocalDateTime getUpdateTime();

    void setUpdateTime(LocalDateTime updateTime);

    Boolean getDeleted();

    void setDeleted(Boolean deleted);

}
